package cz.jm.web.jmlib.client.dialog.validation;

import java.util.LinkedList;
import java.util.List;


/** Viacnasobny validator - zastresenie skupiny roznych validatorov do jedneho validatoru. */
public class MultipleValidator implements Validator {
	
	private List<Validator> validators = new LinkedList<Validator>();
	private List<Validator> invalidValidators = new LinkedList<Validator>();
	
	public void addValidator(Validator v) {
		validators.add(v);
	}
	
//	public List<Validator> getInvalidValidators() {
//		return invalidValidators;
//	}	
	
	public String getAllValidationFailMessages() {
		StringBuilder messageBuilder = new StringBuilder();
		
		for (Validator v : invalidValidators) {
			messageBuilder.append(v.getValidationFailMessage()).append(" ");
		}		
		return messageBuilder.toString();
	}
	
	@Override
    public boolean validate() {
		invalidValidators.clear();
		for (Validator v : validators) {
			if (! v.validate()) {
				invalidValidators.add(v);
			}
		}
	    return invalidValidators.isEmpty();	    
    }

	@Override
    public String getValidationFailMessage() {
	    return getAllValidationFailMessages();
    }



}
